Else If CATEGORIEOGGETTI>0 and PERSONAGGIDADARE=0 and SOLDIDADARE=True
Print At(0,ULTIMALINEA);"Vuoi dare un oggetto o dei soldi (o/s) ?>";
OGGETTOOSOLDI$=Input$(1)
OGGETTOOSOLDI$=Lower$(OGGETTOOSOLDI$)
If OGGETTOOSOLDI$="o"
Proc DAIUNOGGETTO
Else If OGGETTOOSOLDI$="s"
Proc DAIDEISOLDI
End If
Else If CATEGORIEOGGETTI=0 and PERSONAGGIDADARE>0 and SOLDIDADARE=True
Print At(0,ULTIMALINEA);"Vuoi dare un personaggio o dei soldi (p/s) ?>";
PERSONAGGIOOSOLDI$=Input$(1)
PERSONAGGIOOSOLDI$=Lower$(PERSONAGGIOOSOLDI$)
If PERSONAGGIOOSOLDI$="p"
Proc DAIUNPERSONAGGIO
Else If PERSONAGGIOOSOLDI$="s"
Proc DAIDEISOLDI
End If
Else If CATEGORIEOGGETTI=0 and PERSONAGGIDADARE=0 and SOLDIDADARE=True
Proc DAIDEISOLDI
Else If CATEGORIEOGGETTI>0 and PERSONAGGIDADARE>0 and SOLDIDADARE=False
Print At(0,ULTIMALINEA);"Vuoi dare un oggetto od un personaggio (o/p) ?>";
OGGETTOOPERSONAGGIO$=Input$(1)
OGGETTOOPERSONAGGIO$=Lower$(OGGETTOOPERSONAGGIO$)
If OGGETTOOPERSONAGGIO$="o"
Proc DAIUNOGGETTO
Else If OGGETTOOPERSONAGGIO$="p"
Proc DAIUNPERSONAGGIO
End If
Else If CATEGORIEOGGETTI>0 and PERSONAGGIDADARE=0 and SOLDIDADARE=False
Proc DAIUNOGGETTO
Else If CATEGORIEOGGETTI=0 and PERSONAGGIDADARE>0 and SOLDIDADARE=False
Proc DAIUNPERSONAGGIO
Else
Print At(0,ULTIMALINEA);"Non hai oggetti, personaggi o soldi da dare";
If _MUSICA=False
Bell 1
End If
Proc _ASPETTA
End If
Else
Print At(0,ULTIMALINEA);"Non ci sono personaggi a cui dare";
If _MUSICA=False
Bell 1
End If
Proc _ASPETTA
End If
End Proc
Procedure DAIAPAO[AZIONE,P]
A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
PERSONAGGIOTROVATO=A
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
PERSONAGGIOTROVATO=A
Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
PERSONAGGIOTROVATO=A
End If
If PERSONAGGIOTROVATO>-1
NUMEROOGGETTIDELPERSONAGGIOP=-1
For A=0 To NUMEROO
If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
Inc NUMEROOGGETTIDELPERSONAGGIOP
B=A
End If
Next A
If NUMEROOGGETTIDELPERSONAGGIOP=-1
Pop Proc
End If
If NUMEROOGGETTIDELPERSONAGGIOP=0
A=B
Else
Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
If PERSONAGGIOTROVATO=0
Print NOMEP$(P);" ti d� 1 ";
Else
Print NOMEP$(P);" d� 1 ";
End If
If Btst(1,TIPOO(A))=True
Print NOMESRO$(CATEGORIAO(A));
Else
Print NOMESCO$(CATEGORIAO(A));
End If
If PERSONAGGIOTROVATO=0
Print
Else
Print " a ";NOMEP$(PERSONAGGIOTROVATO)
End If
End If
Dec PARAAAZIONEP(AZIONE,P)
If PARAAAZIONEP(AZIONE,P)=0
FINEA(AZIONE,P)=True
End If
End If
End Proc
Procedure DAIAPAOB[AZIONE,P]
A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
PERSONAGGIOTROVATO=A
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
PERSONAGGIOTROVATO=A
Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
PERSONAGGIOTROVATO=A
End If
If PERSONAGGIOTROVATO>-1
NUMEROOGGETTIDELPERSONAGGIOP=-1
For A=0 To NUMEROO
If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARABAZIONEP(AZIONE,P)
Inc NUMEROOGGETTIDELPERSONAGGIOP
B=A
End If
Next A
If NUMEROOGGETTIDELPERSONAGGIOP=-1
Pop Proc
End If
If NUMEROOGGETTIDELPERSONAGGIOP=0
A=B
Else
Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
B=0
For A=0 To NUMEROO
If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARABAZIONEP(AZIONE,P)
If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
If PERSONAGGIOTROVATO=0
Print NOMEP$(P);" ti d� 1 ";
Else
Print NOMEP$(P);" d� 1 ";
End If
If Btst(1,TIPOO(A))=True
Print NOMESRO$(CATEGORIAO(A));
Else
Print NOMESCO$(CATEGORIAO(A));
End If
If PERSONAGGIOTROVATO=0
Print
Else
Print " a ";NOMEP$(PERSONAGGIOTROVATO)
End If
End If
Dec PARAAAZIONEP(AZIONE,P)
If PARAAAZIONEP(AZIONE,P)=0
FINEA(AZIONE,P)=True
End If
End If
End Proc
Procedure DAIAPAOTB[AZIONE,P]
A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
PERSONAGGIOTROVATO=A
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
PERSONAGGIOTROVATO=A
Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
PERSONAGGIOTROVATO=A
End If
If PERSONAGGIOTROVATO>-1
NUMEROOGGETTIDELPERSONAGGIOP=-1
For A=0 To NUMEROO
If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
Inc NUMEROOGGETTIDELPERSONAGGIOP
B=A
End If
Next A
If NUMEROOGGETTIDELPERSONAGGIOP=-1
Pop Proc
End If
If NUMEROOGGETTIDELPERSONAGGIOP=0
A=B
Else
Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
B=0
For A=0 To NUMEROO
If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
If PERSONAGGIOTROVATO=0
Print NOMEP$(P);" ti d� 1 ";
Else
Print NOMEP$(P);" d� 1 ";
End If
If Btst(1,TIPOO(A))=True
Print NOMESRO$(CATEGORIAO(A));
Else
Print NOMESCO$(CATEGORIAO(A));
End If
If PERSONAGGIOTROVATO=0
Print
Else
Print " a ";NOMEP$(PERSONAGGIOTROVATO)
End If
End If
Dec PARAAAZIONEP(AZIONE,P)
If PARAAAZIONEP(AZIONE,P)=0
FINEA(AZIONE,P)=True
End If
Exit
End If
Next A
End If
End Proc
Procedure DAIAPAP[AZIONE,P]
A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
PERSONAGGIOTROVATO=A
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
PERSONAGGIOTROVATO=A
Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
PERSONAGGIOTROVATO=A
End If
If PERSONAGGIOTROVATO>-1
For A=0 To NUMEROP
If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
POSIZIONEP(A)=-1-PERSONAGGIOTROVATO
Add PESONETTOP(P),-PESOP(A)*1000
Add PESONETTOP(P),-PESONETTOP(A)
Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(A)*1000
Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(A)
If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
If PERSONAGGIOTROVATO=0
Print NOMEP$(P);" ti d� ";
Else
Print NOMEP$(P);" d� ";
End If
Print NOMEP$(A);
If PERSONAGGIOTROVATO=0
Print
Else
Print " a ";NOMEP$(PERSONAGGIOTROVATO)
End If
End If
Dec PARAAAZIONEP(AZIONE,P)
If PARAAAZIONEP(AZIONE,P)=0
FINEA(AZIONE,P)=True
End If
Exit
End If
Next A
End If
End Proc
Procedure DAIAPPA[AZIONE,P]
A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
PERSONAGGIOTROVATO=A
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
PERSONAGGIOTROVATO=A
Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
PERSONAGGIOTROVATO=A
End If
If PERSONAGGIOTROVATO>-1
A=PARAAAZIONEP(AZIONE,P)
If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
POSIZIONEP(A)=-1-PERSONAGGIOTROVATO
Add PESONETTOP(P),-PESOP(A)*1000
Add PESONETTOP(P),-PESONETTOP(A)
Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(A)*1000
Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(A)
If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
If PERSONAGGIOTROVATO=0
Print NOMEP$(P);" ti d� ";
Else
Print NOMEP$(P);" d� ";
End If
Print NOMEP$(A);
If PERSONAGGIOTROVATO=0
Print
Else
Print " a ";NOMEP$(PERSONAGGIOTROVATO)
End If
End If
FINEA(AZIONE,P)=True
End If
End If
End Proc
Procedure DAIAPABO[AZIONE,P]
A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
PERSONAGGIOTROVATO=A
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
PERSONAGGIOTROVATO=A
Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
PERSONAGGIOTROVATO=A
End If
If PERSONAGGIOTROVATO>-1
NUMEROOGGETTIDELPERSONAGGIOP=-1
For A=0 To NUMEROO
If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
Inc NUMEROOGGETTIDELPERSONAGGIOP
B=A
End If
Next A
If NUMEROOGGETTIDELPERSONAGGIOP=-1
Pop Proc
End If
If NUMEROOGGETTIDELPERSONAGGIOP=0
A=B
Else
Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
If PERSONAGGIOTROVATO=0
Print NOMEP$(P);" ti d� 1 ";
Else
Print NOMEP$(P);" d� 1 ";
End If
If Btst(1,TIPOO(A))=True
Print NOMESRO$(CATEGORIAO(A));
Else
Print NOMESCO$(CATEGORIAO(A));
End If
If PERSONAGGIOTROVATO=0
Print
Else
Print " a ";NOMEP$(PERSONAGGIOTROVATO)
End If
End If
Dec PARABAZIONEP(AZIONE,P)
If PARABAZIONEP(AZIONE,P)=0
FINEA(AZIONE,P)=True
End If
End If
End Proc
Procedure DAIAPABOC[AZIONE,P]
A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
PERSONAGGIOTROVATO=A
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
PERSONAGGIOTROVATO=A
Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
PERSONAGGIOTROVATO=A
End If
If PERSONAGGIOTROVATO>-1
NUMEROOGGETTIDELPERSONAGGIOP=-1
For A=0 To NUMEROO
If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARACAZIONEP(AZIONE,P)
Inc NUMEROOGGETTIDELPERSONAGGIOP
B=A
End If
Next A
If NUMEROOGGETTIDELPERSONAGGIOP=-1
Pop Proc
End If
If NUMEROOGGETTIDELPERSONAGGIOP=0
A=B
Else
Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
B=0
For A=0 To NUMEROO
If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARACAZIONEP(AZIONE,P)
If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
If PERSONAGGIOTROVATO=0
Print NOMEP$(P);" ti d� 1 ";
Else
Print NOMEP$(P);" d� 1 ";
End If
If Btst(1,TIPOO(A))=True
Print NOMESRO$(CATEGORIAO(A));
Else
Print NOMESCO$(CATEGORIAO(A));
End If
If PERSONAGGIOTROVATO=0
Print
Else
Print " a ";NOMEP$(PERSONAGGIOTROVATO)
End If
End If
Dec PARABAZIONEP(AZIONE,P)
If PARABAZIONEP(AZIONE,P)=0
FINEA(AZIONE,P)=True
End If
End If
End Proc
Procedure DAIAPABOTC[AZIONE,P]
A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
PERSONAGGIOTROVATO=A
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
PERSONAGGIOTROVATO=A
Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
PERSONAGGIOTROVATO=A
End If
If PERSONAGGIOTROVATO>-1
NUMEROOGGETTIDELPERSONAGGIOP=-1
For A=0 To NUMEROO
If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARACAZIONEP(AZIONE,P)
Inc NUMEROOGGETTIDELPERSONAGGIOP
B=A
End If
Next A
If NUMEROOGGETTIDELPERSONAGGIOP=-1
Pop Proc
End If
If NUMEROOGGETTIDELPERSONAGGIOP=0
A=B
Else
Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
B=0
For A=0 To NUMEROO
If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARACAZIONEP(AZIONE,P)
If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
If PERSONAGGIOTROVATO=0
Print NOMEP$(P);" ti d� 1 ";
Else
Print NOMEP$(P);" d� 1 ";
End If
If Btst(1,TIPOO(A))=True
Print NOMESRO$(CATEGORIAO(A));
Else
Print NOMESCO$(CATEGORIAO(A));
End If
If PERSONAGGIOTROVATO=0
Print
Else
Print " a ";NOMEP$(PERSONAGGIOTROVATO)
End If
End If
Dec PARABAZIONEP(AZIONE,P)
If PARABAZIONEP(AZIONE,P)=0
FINEA(AZIONE,P)=True
End If
End If
End Proc
Procedure DAIAPABP[AZIONE,P]
A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
PERSONAGGIOTROVATO=A
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
PERSONAGGIOTROVATO=A
Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
PERSONAGGIOTROVATO=A
End If
If PERSONAGGIOTROVATO>-1
For A=0 To NUMEROP
If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
POSIZIONEP(A)=-1-PERSONAGGIOTROVATO
Add PESONETTOP(P),-PESOP(A)*1000
Add PESONETTOP(P),-PESONETTOP(A)
Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(A)*1000
Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(A)
If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
If PERSONAGGIOTROVATO=0
Print NOMEP$(P);" ti d� ";
Else
Print NOMEP$(P);" d� ";
End If
Print NOMEP$(A);
If PERSONAGGIOTROVATO=0
Print
Else
Print " a ";NOMEP$(PERSONAGGIOTROVATO)
End If
End If
Dec PARABAZIONEP(AZIONE,P)
If PARABAZIONEP(AZIONE,P)=0
FINEA(AZIONE,P)=True
End If
Exit
End If
Next A
End If
End Proc
Procedure DAIAPAPB[AZIONE,P]
A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
PERSONAGGIOTROVATO=A
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
PERSONAGGIOTROVATO=A
Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
PERSONAGGIOTROVATO=A
End If
If PERSONAGGIOTROVATO>-1
A=PARABAZIONEP(AZIONE,P)
If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
POSIZIONEP(A)=-1-PERSONAGGIOTROVATO
Add PESONETTOP(P),-PESOP(A)*1000
Add PESONETTOP(P),-PESONETTOP(A)
Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(A)*1000
Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(A)
If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
If PERSONAGGIOVISIBILEP(A)=True Then Inc PERSONAGGIVISIBILI
Next A
If PERSONAGGIVISIBILI>1
Locate 0,ULTIMALINEA : Input "Quale personaggio vuoi guardare ?>";PERSONAGGIO$;
Curs Off
If PERSONAGGIO$<>""
PERSONAGGIO$=Lower$(PERSONAGGIO$)
If PERSONAGGIO$="me"
PERSONAGGIO$=NOMEP$(0)
DESCRIZIONE$=DESCRIZIONEP$(0)
COMPIUTAAZIONE=1
Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardarti";
Proc _ASPETTA
Proc MOSTRAMESSAGGIO["Descrizione del personaggio "+PERSONAGGIO$,DESCRIZIONE$]
Else
For A=1 To NUMEROP
If PERSONAGGIO$=Lower$(NOMEP$(A)) and POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
PERSONAGGIO$=NOMEP$(A)
DESCRIZIONE$=DESCRIZIONEP$(A)
COMPIUTAAZIONE=1
Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare il personaggio ";PERSONAGGIO$;
Proc _ASPETTA
Proc MOSTRAMESSAGGIO["Descrizione del personaggio "+PERSONAGGIO$,DESCRIZIONE$]
If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0 and Btst(2,TIPOP(0))=False
Print NOMEP$(P);" lascia 1 ";
If Btst(1,TIPOO(A))=True
Print NOMESRO$(CATEGORIAO(A))
Else
Print NOMESCO$(CATEGORIAO(A))
End If
End If
Dec PARAAAZIONEP(AZIONE,P)
If PARAAAZIONEP(AZIONE,P)=0
FINEA(AZIONE,P)=True
End If
End Proc
Procedure LASCIAAP[AZIONE,P]
For A=1 To NUMEROP
If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
POSIZIONEP(A)=POSIZIONEP(P)
TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
Bclr 0,TIPOP(A)
Add PESONETTOP(P),-PESOP(A)*1000
Add PESONETTOP(P),-PESONETTOP(A)
If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0) and Btst(2,TIPOP(0))=False
If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0) and Btst(2,TIPOP(0))=False
Print NOMEP$(P);" lascia ";NOMEP$(A)
End If
FINEA(AZIONE,P)=True
End If
End Proc
Procedure LASCIAPASSAREILTEMPO
COMPIUTAAZIONE=5
Print At(0,ULTIMALINEA);"Hai deciso di aspettare cinque minuti";
Proc _ASPETTA
End Proc
Procedure LASCIAUNOGGETTO
For A=0 To NUMEROCO
If OGGETTIDELPERSONAGGIO0(A)>0
Inc CATEGORIEOGGETTI
End If
If RESTIDELPERSONAGGIO0(A)>0
Inc CATEGORIEOGGETTI
End If
Next A
OGGETTODIFENSIVOINDOSSATO=-1
For A=0 To NUMEROO
If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and Btst(2,TIPOCO(CATEGORIAO(A)))=True
If POSIZIONEO(B)=-1-NUMERO and Btst(0,TIPOO(B))=False
If Btst(1,TIPOO(B))=True
Add PESONETTOP(A),-PESORESTOCO(CATEGORIAO(B))
Else
Add PESONETTOP(A),-PESOCO(CATEGORIAO(B))
End If
End If
Next B
For B=1 To NUMEROP
If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
Add PESONETTOP(A),-PESOP(B)*1000
Add PESONETTOP(A),-PESONETTOP(B)
End If
Next B
End If
COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline
Print "Hai deciso di dare 1 ";
If Btst(1,TIPOO(NUMERO))=True
Print NOMESRO$(CATEGORIAO(NUMERO));
Else
Print NOMESCO$(CATEGORIAO(NUMERO));
End If
Else If TIPO$="P"
POSIZIONEP(NUMERO)=-1-A
Add PESONETTOP(0),-PESOP(NUMERO)*1000
Add PESONETTOP(0),-PESONETTOP(NUMERO)
Add PESONETTOP(A),PESOP(NUMERO)*1000
Add PESONETTOP(A),PESONETTOP(NUMERO)
COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline
Print "Hai deciso di dare ";NOMEP$(NUMERO);
Else If TIPO$="S"
Add SOLDIP(A),NUMERO
Add SOLDIRICEVUTIP(A),NUMERO
Add PESONETTOP(0),-NUMERO*PESOS
Add PESONETTOP(A),NUMERO*PESOS
COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline
Print "Hai deciso di dare";NUMERO;
If NUMERO=1
Print " soldo";
Else
Print " soldi";
End If
End If
Print " a ";NOMEP$(A);
Proc _ASPETTA
End If
Next A
End If
End Proc
Procedure PERSONAGGIOVISIBILE[P]
If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0)
PERSONAGGIOVISIBILEP(P)=True
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(0) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(0)
PERSONAGGIOVISIBILEP(P)=True
Else
PERSONAGGIOVISIBILEP(P)=False
End If
End Proc
Procedure PRENDI
If TEMP0DIATTRAVERSAMENTOP(0)>0
For A=1 To NUMEROP
If PERSONAGGIOVISIBILEP(A)=True
Inc PERSONAGGI
End If
Next A
If PERSONAGGI>0
Proc PRENDIUNPERSONAGGIO
Else
Print At(0,ULTIMALINEA);"Non ci sono personaggi da prendere";
If _MUSICA=False
Bell 1
End If
Proc _ASPETTA
Pop Proc
End If
Else
For A=1 To NUMEROP
If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
Inc PERSONAGGI
End If
Next A
End If
For A=0 To NUMEROCO
If OGGETTINELLUOGO(A)>0 and Btst(7,TIPOCO(A))=False Then Inc CATEGORIEOGGETTI
If RESTINELLUOGO(A)>0 and Btst(7,TIPOCO(A))=False Then Inc CATEGORIEOGGETTI
Next A
If SOLDIL(POSIZIONEP(0))>0
SOLDI=True
End If
If CATEGORIEOGGETTI>0 and PERSONAGGI>0 and SOLDI=True
Print At(0,ULTIMALINEA);"Vuoi prendere un oggetto,un personaggio o dei soldi (o/p/s) ?>";
If POSIZIONEO(A)=POSIZIONEP(0) and Btst(7,TIPOCO(CATEGORIAO(A)))=False
POSIZIONEO(A)=-1 : Bset 0,TIPOO(A)
If Btst(1,TIPOO(A))=True
Inc RESTIDELPERSONAGGIO0(CATEGORIAO(A))
Else
Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(A))
End If
Add PESONETTOP(0),PESOCO(CATEGORIAO(A))
If Btst(1,TIPOCO(CATEGORIAO(A)))=True
For B=0 To NUMEROO
If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
If Btst(1,TIPOO(B))=True
Add PESONETTOP(0),PESORESTOCO(CATEGORIAO(B))
Else
Add PESONETTOP(0),PESOCO(CATEGORIAO(B))
End If
End If
Next B
For B=1 To NUMEROP
If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
Add PESONETTOP(0),PESOP(B)*1000
Add PESONETTOP(0),PESONETTOP(B)
End If
Next B
End If
COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline
Print "Hai deciso di prendere 1 ";
If Btst(1,TIPOO(A))=True
Print NOMESRO$(CATEGORIAO(A));
Else
Print NOMESCO$(CATEGORIAO(A));
End If
Proc _ASPETTA : Exit
End If
Next A
End If
End If
End Proc
Procedure PRENDIUNPERSONAGGIO
For A=1 To NUMEROP
If PERSONAGGIOVISIBILEP(A)=True Then Inc PERSONAGGI
Next A
If PERSONAGGI>0
If PERSONAGGI>1
Locate 0,ULTIMALINEA : Input "Quale personaggio vuoi prendere ?>";PERSONAGGIO$;
Curs Off
If PERSONAGGIO$<>""
For A=1 To NUMEROP
If Lower$(PERSONAGGIO$)=Lower$(NOMEP$(A)) and POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0) and Btst(2,TIPOP(0))=False
Print "Non hai 1 ";NOMESCO$(PARATIPOCO(CATEGORIAO(O)));" da usare con 1";
If _MUSICA=False
Bell 1
End If
End If
End If
End If
End If
Print " ";
If RESTO=True
Print NOMESRO$(CATEGORIAO(O));
Else
Print NOMESCO$(CATEGORIAO(O));
End If
OGGETTOUSANTE=O
PERSONAGGIOSUCUIPERSONAGGIO0HAUSATO=P
If P>0 and RESISTENZAP(P)=0 Then Proc MORTE[P]
Proc _ASPETTA
If PERSONAGGIO0DEVELEGGERE=True
Proc MOSTRAMESSAGGIO["Lettura di 1 "+NOMESCO$(CATEGORIAO(O)),TESTOO$(TESTOO(O))]
PERSONAGGIO0DEVELEGGERE=False
End If
End Proc
Procedure USASUPERSONAGGIOP[O,P,Q]
If P=Q Then Pop Proc
If Btst(1,TIPOO(O))=False
If Btst(2,TIPOP(0))=False
PERSONAGGIO0SVEGLIO=True
End If
If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0)
PERSONAGGIOVISIBILE=True
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(0) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(0)
PERSONAGGIOVISIBILE=True
Else If POSIZIONEP(P)=-1-Q and Btst(0,TIPOP(P))=True
If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0)
PERSONAGGIOVISIBILE=True
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(0) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(0)
PERSONAGGIOVISIBILE=True
End If
End If
If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
Print NOMEP$(P);" ";
End If
If TIPOCO(CATEGORIAO(O))=%1
If Q>0
If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
Print "sta facendo mangiare a ";NOMEP$(Q);" 1";
End If
Else
If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
If POSIZIONEO(A)=POSIZIONEP(0) and Btst(3,TIPOO(A))=False
Proc USASUOGGETTO[O,A] : Exit
End If
Next A
End If
End If
End Proc
Procedure USASUUNPERSONAGGIO[O]
For A=0 To NUMEROP
If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
Inc PERSONAGGI
Else If LUOGODIDESTINAZIONEP(A)=POSIZIONEP(0) and CAMMINOP(A)-TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(A)=DREZIONEPRESAP(0)
Inc PERSONAGGI
End If
Next A
If PERSONAGGI>1
Locate 0,ULTIMALINEA : Input "Su quale personaggio vuoi usare ?>";PERSONAGGIO$;
Curs Off
If PERSONAGGIO$<>""
PERSONAGGIO$=Lower$(PERSONAGGIO$)
If PERSONAGGIO$="me"
USASUPERSONAGGIO[O,0]
Else
For A=1 To NUMEROP
If PERSONAGGIO$=Lower$(NOMEP$(A))
If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
USASUPERSONAGGIO[O,A] : Exit
Else If LUOGODIDESTINAZIONEP(A)=POSIZIONEP(0) and CAMMINOP(A)-TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(A)=DREZIONEPRESAP(0)
If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0)
PERSONAGGIOVISIBILE=True
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(0) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(0)
PERSONAGGIOVISIBILE=True
Else If POSIZIONEP(P)=-1 and Btst(0,TIPOP(P))=True
PERSONAGGIOVISIBILE=True
End If
End If
If PERSONAGGIOVISIBILE=True
Print NOMEP$(P);" ";
End If
If TIPOCO(CATEGORIAO(O))=%1
If PERSONAGGIOVISIBILE=True
Print "si sta mangiando 1";
End If
Bset 1,TIPOO(O)
If RESISTENZAP(P)<C0STITUZIONEP(P)
Inc RESISTENZAP(P)
End If
Else If TIPOCO(CATEGORIAO(O))=%100
If PERSONAGGIOVISIBILE=True
Print "si sta difendendo con 1";
End If
Bset 2,TIPOO(O)
Else If TIPOCO(CATEGORIAO(O))=%1000
If PERSONAGGIOVISIBILE=True
Print "si sta leggendo 1";
End If
Else If TIPOCO(CATEGORIAO(O))=%10001
If PERSONAGGIOVISIBILE=True
Print "si sta bevendo 1";
End If
Bset 1,TIPOO(O)
If RESISTENZAP(P)<C0STITUZIONEP(P)
Inc RESISTENZAP(P)
End If
Else If TIPOCO(CATEGORIAO(O))=%100000
If PERSONAGGIOVISIBILE=True
Print "si sta ammaliando con 1";
End If
Else If TIPOCO(CATEGORIAO(O))=%1000000
If PERSONAGGIOVISIBILE=True
Print "si colpisce con 1";
End If
RESISTENZA=RESISTENZAP(P)
Add RESISTENZAP(P),-PARATIPOCO(CATEGORIAO(O))
For A=0 To NUMEROO
If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=False
If POSIZIONEO(B)=POSIZIONEP(P) and TIPOCO(CATEGORIAO(B))=PARABAZIONEP(AZIONE,P)
USASUOGGETTOP[A,P,B]
Dec PARAAAZIONEP(AZIONE,P)
If PARAAAZIONEP(AZIONE,P)=0
FINEA(AZIONE,P)=True
End If
Exit
End If
Next B
End Proc
Procedure USAUNOSUAP[AZIONE,P]
A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
PERSONAGGIOTROVATO=A
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
PERSONAGGIOTROVATO=A
Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
PERSONAGGIOTROVATO=A
End If
If PERSONAGGIOTROVATO>-1
For A=0 To NUMEROO
If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
USASUPERSONAGGIOP[A,P,PERSONAGGIOTROVATO]
Dec PARAAAZIONEP(AZIONE,P)
If PARAAAZIONEP(AZIONE,P)=0
FINEA(AZIONE,P)=True
End If
Exit
End If
Next A
End If
End Proc
Procedure USAUNOSUPA[AZIONE,P]
A=PARAAAZIONEP(AZIONE,P)
For B=0 To NUMEROO
If POSIZIONEO(B)=-1-P and Btst(0,TIPOO(B))=True
If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
Proc USASUPERSONAGGIOP[B,P,A]
Exit
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
Proc USASUPERSONAGGIOP[B,P,A]
Exit
Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
Proc USASUPERSONAGGIOP[B,P,A]
Exit
End If
End If
Next B
End Proc
Procedure USAUNOASUBO[AZIONE,P]
NUMEROOGGETTIDELPERSONAGGIOP=-1
For A=0 To NUMEROO
If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
Inc NUMEROOGGETTIDELPERSONAGGIOP
B=A
End If
Next A
If NUMEROOGGETTIDELPERSONAGGIOP=-1
Pop Proc
End If
If NUMEROOGGETTIDELPERSONAGGIOP=0
A=B
Else
Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
If POSIZIONEO(B)=POSIZIONEP(P) and TIPOCO(CATEGORIAO(B))=PARACAZIONEP(AZIONE,P)
USASUOGGETTOP[A,P,B]
Dec PARABAZIONEP(AZIONE,P)
If PARABAZIONEP(AZIONE,P)=0
FINEA(AZIONE,P)=True
End If
Exit
End If
Next B
End Proc
Procedure USAUNOASUBP[AZIONE,P]
A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
PERSONAGGIOTROVATO=A
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
PERSONAGGIOTROVATO=A
Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
PERSONAGGIOTROVATO=A
End If
If PERSONAGGIOTROVATO>-1
For A=0 To NUMEROO
If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
USASUPERSONAGGIOP[A,P,B]
Dec PARABAZIONEP(AZIONE,P)
If PARABAZIONEP(AZIONE,P)=0
FINEA(AZIONE,P)=True
End If
Exit
End If
Next A
End If
End Proc
Procedure USAUNOASUPB[AZIONE,P]
A=PARABAZIONEP(AZIONE,P)
For B=0 To NUMEROO
If POSIZIONEO(B)=-1-P and Btst(0,TIPOO(B))=True and CATEGORIAO(B)=PARAAAZIONEP(AZIONE,P)
If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
Proc USASUPERSONAGGIOP[B,P,A]
Exit
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
Proc USASUPERSONAGGIOP[B,P,A]
Exit
Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
Proc USASUPERSONAGGIOP[B,P,A]
Exit
End If
End If
Next B
End Proc
Procedure USAUNOTASUBO[AZIONE,P]
NUMEROOGGETTIDELPERSONAGGIOP=-1
For A=0 To NUMEROO
If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
Inc NUMEROOGGETTIDELPERSONAGGIOP
B=A
End If
Next A
If NUMEROOGGETTIDELPERSONAGGIOP=-1
Pop Proc
End If
If NUMEROOGGETTIDELPERSONAGGIOP=0
A=B
Else
Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
If POSIZIONEO(B)=POSIZIONEP(P) and TIPOCO(CATEGORIAO(B))=PARACAZIONEP(AZIONE,P)
USASUOGGETTOP[A,P,B]
Dec PARABAZIONEP(AZIONE,P)
If PARABAZIONEP(AZIONE,P)=0
FINEA(AZIONE,P)=True
End If
Exit
End If
Next B
End Proc
Procedure USAUNOTASUBP[AZIONE,P]
A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
PERSONAGGIOTROVATO=A
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
PERSONAGGIOTROVATO=A
Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
PERSONAGGIOTROVATO=A
End If
If PERSONAGGIOTROVATO>-1
For A=0 To NUMEROO
If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARAAAZIONEP(AZIONE,P)
USASUPERSONAGGIOP[A,P,B]
Dec PARABAZIONEP(AZIONE,P)
If PARABAZIONEP(AZIONE,P)=0
FINEA(AZIONE,P)=True
End If
Exit
End If
Next A
End If
End Proc
Procedure USAUNOTASUPB[AZIONE,P]
A=PARABAZIONEP(AZIONE,P)
For B=0 To NUMEROO
If POSIZIONEO(B)=-1-P and Btst(0,TIPOO(B))=True and TIPOCO(CATEGORIAO(B))=PARAAAZIONEP(AZIONE,P)
If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
Proc USASUPERSONAGGIOP[B,P,A]
Exit
Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
Proc USASUPERSONAGGIOP[B,P,A]
Exit
Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True